#include "dynamicArray.h"
#include "dynamicArrayStack.h"

#define DEFAULT_SIZE 10

/*栈的初始化*/
int dynamicArrayStackInit(dynamicArrayStack *pStack)
{

    return dynamicArrayInit(pStack, DEFAULT_SIZE);
}

/*压栈*/
int dynamicArrayStackPush(dynamicArrayStack *pStack, ELEMENTTYPE val)
{
    return dynamicArrayInsertData(pStack, val);
}

/*查看栈顶元素*/
int dynamicArrayStackTop(dynamicArrayStack *pStack, ELEMENTTYPE *pVal)
{
    // 获取指定位置元素
    return dynamicArrayGetAppointPosVal(pStack, (pStack->len) - 1, *pVal);
}

/*出栈*/
int dynamicArrayStackPop(dynamicArrayStack *pStack)
{
    return dynamicArrayDeleteData(pStack);
}

/*栈是否为空*/
int whetherDynamicStackIsEmpty(dynamicArrayStack *pStack)
{
    int size = 0;
    dynamicArrayGetSize(pStack, &size);
    return size == 0 ? 1 : 0;
}

/*获得栈的大小*/
int dynamicArrayStackGetSize(dynamicArrayStack *pStack, int *pSize)
{
    dynamicArrayGetSize(pStack, pSize);
    return *pSize;
}

/*栈的销毁*/
int dynamicArrayStackDestroy(dynamicArrayStack *pStack)
{
    return dynamicArrayDestroy(pStack);
}